# 列表允许你保存一系列按顺序排列的元素。列表是可变的，这意味着你可以随时修改列表中的元素。
# 列表可以通过方括号 [] 来创建，并且列表中的元素可以是任何类型的对象，甚至可以混合不同类型的数据。
# 列表中的元素可以通过索引来访问，索引是从 0 开始的。你也可以使用负数索引来从列表的末尾开始计数。
# 切片允许你获取列表的一部分，而不是整个列表。

# 元组（Tuple）和列表（List）类似，不同之处在于元组的元素不能修改

'''
需要学习的用法：
1. 创建列表
2. 访问列表元素
3. 修改列表元素
4. 添加元素 append(param) insert(index,param)
5. 删除元素  remove(param) pop() clear()
6. 排序和反转 sort() reverse()
7. 查找索引和计数 index(param) count(param)
8. 切片 [:]
'''

## 创建一个列表
students = ["Alice", "Bob", "Charlie"]

## 访问列表元素
print(students[0])  # 输出 "Alice"

## 修改列表元素
students[1] = "Bobby"

## 添加元素
students.append("David")
students.insert(1, "Alex")

## 删除元素
students.remove("Alex")
last_student = students.pop()  # 移除并返回 "David"
## 清空列表
## names.clear()

## 排序和反转
students.sort()
students.reverse()

## 查找索引和计数
print(students.index("Alice"))
print(students.count("Alice"))

## 切片
first_two_students = students[:2]
remaining_students = students[2:]

## 元组 使用圆括号 () 来定义，但有时也可以省略括号，只要元素之间用逗号 , 隔开即可。

# 使用场景
# 当你需要一个可以随时修改的序列时，使用 列表。
# 当你需要一个固定不变的序列时，使用 元组。这有助于避免意外修改数据，并且在某些情况下可以提高性能。